Telegram Group Search
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?

Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.

Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).

👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
🌐 Отложенная инициализация свойств

Отложенная инициализация свойств — это механизм, который позволяет отложить инициализацию переменных до момента их первого использования.

Этот вариант позволяет экономить ресурсы, т.к. избегает необходимости создания объектов при инициализации класса.

➡️ lateinit

Модификатор lateinit говорит о том, что данная переменная будет инициализирована позже. При этом инициализировать свойство можно из любого места, откуда она видна.

Правила использования модификатора lateinit:

🔵 lateinit может использоваться только с var свойствами класса;

🔵 lateinit может быть применен только к свойствам, объявленным внутри тела класса (но не в основном конструкторе), а также к переменным на верхнем уровне и локальным переменным;

🔵 lateinit свойства могут иметь любой тип, кроме примитивных типов (таких как Int, Long, Double и т.д.);

🔵 lateinit свойства не могут быть nullable (т.е. обязательно должно быть объявлены без знака вопроса);

🔵 lateinit свойства не могут быть проинициализированы сразу при их объявлении;

🔵 lateinit свойства должны быть инициализированы до первого обращения к ним, иначе будет выброшено исключение UninitializedPropertyAccessException;

🔵 Нельзя использовать lateinit для переменных, определенных внутри локальных областей видимости (например, внутри функций);

🔵 При использовании модификатора lateinit у свойства не должно быть пользовательских геттеров и сеттеров.

Для проверки факта инициализации переменной вызывайте метод isInitialized(). Функцию следует использовать экономно — не следует добавлять эту проверку к каждой переменной с отложенной инициализацией. Если вы используете isInitialized() слишком часто, то скорее всего вам лучше использовать тип с поддержкой null.

lateinit var catName: String

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

catName = "Barsik"

if (::catName.isInitialized) {
Log.d("Kot", "Hi, $catName")
}
}


А вы используете lateinit в своих проектах? 💬

🐸 Библиотека мобильного разработчика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 git cherry-pick – переносим отдельные коммиты между ветками

Знакомая ситуация? Вы исправили баг в feature-branch, но нужно срочно добавить этот фикс в main без мержа всей ветки.

Вот как это работает:

git cherry-pick <hash-коммита>  # переносит указанный коммит в текущую ветку


Пример использования:

1. Нашли коммит с нужным исправлением:

git log feature-branch --oneline  # копируем хеш коммита


2. Переключились на main и применили его:

git checkout main
git cherry-pick abc1234


💡 Когда пригодится:

🔵 Срочные фиксы – перенос исправления из разработки в прод без полного мержа.
🔵 Частичные обновления – нужно взять только один коммит из чужой ветки.
🔵 Ошибки в ветвлении – забыли сделать коммит в нужной ветке? cherry-pick спасает!

Вы уже использовали cherry-pick? Делитесь кейсами в комментариях 👇

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🖱 Мастерство фокусов на Compose

Фокусировка в Jetpack Compose — это не просто перемещение курсора между элементами. За этим процессом стоит сложная система нод, модификаторов и алгоритмов, которые определяют, какой элемент должен получить фокус в каждый момент времени.

В этой статье автор разберёт основы: что такое фокус, как он работает, какие модификаторы и инструменты предоставляет Jetpack Compose, а также как использовать их для построения удобных интерфейсов.

👉 Читать статью

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Нативная или кроссплатформенная разработка

Как показывает практика, это актуальная дилемма как для заказчиков, так и для начинающих разработчиков, которые хотят приобрести наиболее полезный опыт для дальнейшей карьеры.

Кроссплатформенные приложения дешевле, работают сразу на двух платформах, а дизайн и разработка занимают меньше времени.

Нативные приложения дороже, зато обеспечивают лучший пользовательский опыт и подходят для крупных и долгосрочных проектов.

Что вы предпочитаете для мобильной разработки? Голосуйте и пишите своё мнение в комментариях
💬

❤️
нативная разработка
👍
кроссплатформенная

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Вы уже работаете с мобильной разработкой? Swift, Kotlin, нативный Android?

Тогда вы и сами знаете, что:
— поддерживать две платформы — боль,
— UI-мокапы не сходятся,
— релизы оттягиваются,
— а теперь ещё и Web прилетает сверху.

Есть другой путь. Flutter.

Одна кодовая база. Один UI. Одни тесты.
Приложение сразу под iOS, Android, Web и даже Desktop.
Google, BMW, eBay — уже там.

Курс «Flutter Mobile Developer» от OTUS — для тех, кто хочет перейти в мультиплатформу без хаоса и костылей.

На курсе:
— создадите полноценное приложение с нуля,
— научитесь архитектуре без боли с DI и навигацией,
— подключите CI/CD, Firebase, ML и LLM‑подсказки,
— поймёте, как адаптировать Flutter под реальные продакшн‑сценарии.

📌 Вход — через короткий тест.

15 вопросов по ООП, Dart и архитектуре. Пройдёте — получите скидку и место в потоке.

Старт — 30 мая

Пройти тест

Flutter — это не про «быстрее собрать MVP». Это про нормальную мобильную разработку без вечной войны платформ.

Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
😨 Топ-вакансий для мобильных разработчиков за неделю

Senior Flutter Developer от 3 000 до 6 000 €, офис (Кипр)

Разработчик React Nativeдо 160 000 ₽, гибрид (Калининград)

Senior Android-разработчик в Mobile-Coreгибрид (Москва)

Kotlin / Flutter expert (проектная занятость)удалёнка

Стажёр-разработчик IOS, Ozon Techгибрид

➡️ Еще больше топовых вакансий — в нашем канале Mobile jobs

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🤖 Инструмент недели: Androidify

Робот Android — любимый маскот пользователей и разработчиков Android. И предыдущие версии конструктора таких ботов были очень популярны — в Google в этом году переделали конструктор ботов с нуля, используя новейшие технологии, поддерживаемые Gemini.

Недавно компания выпустила новое приложение с открытым исходным кодом, Androidify, с помощью которого можно научиться создавать мощный опыт на базе ИИ на Android с использованием новейших технологий.

👉 Подробнее в статье

💻 Androidify на GitHub

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🤫 Cекреты производительности на iOS

Автор доклада расскажет, как с помощью анализа кода и ряда оптимизаций удалось ускорить работу компонентов iOS-приложения в 5–10 раз и как это повлияло на основные метрики скорости приложения.

Также автор обсудит идеи, стратегии и трюки, которые сделали возможным это улучшение, начиная с диагностики проблемы и заканчивая реализацией самых эффективных решений.

👀 Смотреть доклад

🐸 Библиотека мобильного разработчика 

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Вся правда об увольнениях в IT в 2025-м

Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.

Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:

— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы

Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.

⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
📝 Промпт дня: генерация кода для RecyclerView/ListView

Устали вручную писать адаптеры для списков? Попробуйте этот промпт, чтобы ускорить разработку.

⚙️ Промпт для ChatGPT/Copilot:

Generate a complete RecyclerView adapter in Kotlin for displayin
1. ViewHolder pattern implementation
2. Click listeners for items
3. DiffUtil for efficient updates
4. Support for multiple view types
Include sample data class and usage example in Activity/Fragment.


📌 Варианты уточнений:

🔵 Add pull-to-refresh functionality

🔵 Implement animated item insertion/removal

🔵 Add sticky headers implementation

🔵 Optimize for large datasets with pagination

💡 Cовет:

Добавьте Explain each part of the implementation, если хотите не просто код, а объяснение архитектурных решений.

Какой ваш любимый способ работы со списками? Делитесь в комментариях 💬

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/05/28 20:11:08
Back to Top
HTML Embed Code: